import { Category } from 'category-model.js';
const category = new Category();

Page({

	data: {
		categoryTypeArr: [],  // 分类数据
		currentMenuIndex: 0,  // 当前分类索引
		loadedData: {}	// 存所有分类下的列表  每第一次请求的时候存进去 之后每次切换不用再请求
	},

	onLoad (options) {
		this._loadData();
	},

	_loadData () {
		// 获取分类数据
		category.getCategoryType((res) => {

			let categoryData = res.category
			this.setData({
				categoryTypeArr: res.category
			});

			// 获取每个分类对应的数据  一定在回调里再进行获取分类详情的方法调用
			category.getProductsByCategory(
				categoryData[0].id, (res) => {

					var dataObj = {
						procucts: res.data,
						topImgUrl: categoryData[0].img,
						title: categoryData[0].name
					};
					
					this.setData({
						categoryProducts: dataObj
					})

					this.data.loadedData[0] = dataObj;
				});
		});

	},

	// 判断当前分类下的商品数据是否已经被加载过
	isLoadedData (index) {
		if (this.data.loadedData[index]) {
			return true;
		}
		return false;
	},
	// 切换分类
	changeCategory (event) {

		const index = category.getDataSet(event, 'index')
		const id = category.getDataSet(event, 'id')

		this.setData({
			currentMenuIndex: index
		});

		if (!this.isLoadedData(index)) {
			// 如果没有加载过当前分类的商品数据
			category.getProductsByCategory(
				id, (res) => {

					var dataObj = {
						procucts: res.data,
						topImgUrl: this.data.categoryTypeArr[index].img,
						title: this.data.categoryTypeArr[index].name
					};

					this.setData({
						categoryProducts: dataObj
					})

					this.data.loadedData[index] = dataObj;
				});
		}
		else {
			// 已经加载过，直接读取
			this.setData({
				categoryProducts: this.data.loadedData[index]
			})

		}
	},

	/*跳转到商品详情*/
	onProductsItemTap: function (event) {
		var id = category.getDataSet(event, 'id');
		wx.navigateTo({
			url: '../product/product?id=' + id
		})
	}

})